The invention pertains to digital data processing and, more particularly, to virtual processor methods and apparatus with unified event notification and consumer-producer memory operations.
There have been three broad phases to computing and applications evolution. First, there was the mainframe and minicomputer phase. This was followed by the personal computer phase. We are now in the embedded processor or “computers in disguise” phase.
Increasingly, embedded processors are being used in digital televisions, digital video recorders, PDAs, mobile phones, and other appliances to support multi-media applications (including MPEG decoding and/or encoding), voice and/or graphical user interfaces, intelligent agents and other background tasks, and transparent internet, network, peer-to-peer (P2P) or other information access. Many of these applications require complex video, audio or other signal processing and must run in real-time, concurrently with one another.
Prior art embedded application systems typically combine: (1) one or more general purpose processors, e.g., of the ARM, MIPs or x86 variety, for handling user interface processing, high level application processing, and operating system, with (2) one or more digital signal processors (DSPs) (including media processors) dedicated to handling specific types of arithmetic computations, at specific interfaces or within specific applications, on real time/low latency bases. Instead or in addition to the DSPs, special-purpose hardware is often provided to handle dedicated needs that a DSP is unable to handle on a programmable basis, e.g., because the DSP cannot handle multiple activities at once or because the DSP cannot meet needs for a very specialized computational element.
A problem with the prior art systems is hardware design complexity, combined with software complexity in programming and interfacing heterogeneous types of computing elements. The result often manifests itself in embedded processing subsystems that are under-powered computationally, but that are excessive in size, cost and/or electrical power requirements. Another problem is that both hardware and software must be re-engineered for every application. Moreover, prior art systems do not load balance; capacity cannot be transferred from one hardware element to another.
An object of this invention is to provide improved apparatus and methods for digital data processing.
A more particular object is to provide improved apparatus and methods that support applications that have high computational requirements, real-time application requirements, multi-media requirements, voice and graphical user interfaces, intelligence, background task support, interactivity, and/or transparent Internet, networking and/or P2P access support. A related object is to provide such improved apparatus and methods as support multiple applications meeting having one or more of these requirements while executing concurrently with one another.
A further object of the invention is to provide improved apparatus and methods for processing (embedded or otherwise) that meet the computational, size, power and cost requirements of today's and future appliances, including by way of non-limiting example, digital televisions, digital video recorders, video and/or audio players, PDAs, personal knowledge navigators, and mobile phones, to name but a few.
Yet another object is to provide improved apparatus and methods that support a range of applications, including those that are inherently parallel.
A further object is to provide improved apparatus and methods that support multi-media and user interface driven applications.
Yet a still further object provide improved apparatus and methods for multi-tasking and multi-processing at one or more levels, including, for example, peer-to-peer multi-processing.
Still yet another object is to provide such apparatus and methods which are low-cost, low-power and/or support robust rapid-to-market implementations.